# 使用官方的Node.js 16镜像作为基础镜像
FROM node:16.14.0-buster

# 设置Dockerfile的作者
LABEL maintainer="YIN"

RUN npm config set registry https://registry.npmmirror.com

# 升级npm到指定版本
RUN npm install -g npm@9.6.2

# 将应用程序源代码添加到容器
ADD lottery.tar.gz /

# 设置工作目录为应用程序根目录
WORKDIR /lottery

# 设置应用程序目录的所有权为root
RUN chown -R root /lottery \
    # 删除启动服务器时打开默认浏览器的行
    && sed -i '/openBrowser/ d' ./server/server.js \
    # 安装server目录下的依赖
    && cd server && npm install \
    # 返回到根目录并安装product目录下的依赖
    && cd ../product && npm install \
    # 构建应用程序
    && npm run build

# 向外暴露8080端口
EXPOSE 8080

# 设置工作目录为product目录
WORKDIR /lottery/product

# 启动服务器
CMD ["npm", "run", "serve"]